package tech.edwardvan.quartzdemo.service;

import org.quartz.SchedulerException;
import tech.edwardvan.quartzdemo.entity.Task;

import java.util.List;

/**
 * 调度服务接口
 *
 * @author EdwardVan
 */
public interface IScheduleService {

    /**
     * 获取任务详情
     *
     * @param taskId 任务id
     */
    Task getTask(String taskId) throws SchedulerException;

    /**
     * 添加并启动调度
     *
     * @param task 任务对象
     */
    void addTask(Task task) throws SchedulerException;

    /**
     * 删除调度
     *
     * @param taskId 任务id
     */
    void deleteTask(String taskId) throws SchedulerException;

    /**
     * 暂停执行任务
     *
     * @param taskId 任务id
     */
    void pauseTask(String taskId) throws SchedulerException;


    /**
     * 继续执行任务
     *
     * @param taskId 任务id
     */
    void resumeTask(String taskId) throws SchedulerException;

    /**
     * 更新调度
     *
     * @param task 任务对象
     */
    void updateTask(Task task) throws SchedulerException;

    /**
     * 获取调度列表
     */
    List<Task> getTaskList() throws SchedulerException;
}
